package com.weixiaodong.javabasic.冗余的ifelse的代替方式.策略模式;

import com.weixiaodong.javabasic.冗余的ifelse的代替方式.枚举方式.RoleEnum;
import com.weixiaodong.javabasic.冗余的ifelse的代替方式.枚举方式.RoleOperation;

/**
 * 策略模式，和工厂模式类似，只不过将工厂换成了策略类，进行对三种角色的聚合
 */
@SuppressWarnings("all")
public class RoleContext {
    private RoleOperation roleOperation; // 策略中的参数是RoleOperation接口，各自的角色都继承了这个接口

    public RoleContext(RoleOperation roleOperation) {
       this.roleOperation = roleOperation;
    }

    public String getPermission() {
        return roleOperation.op();
    }
}
